<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="t4Zwm" id="t4Zwm"><span data-lake-id="u3de56b41" id="u3de56b41">典型回答</span></h1>
  <p data-lake-id="ue791844d" id="ue791844d"><br></p>
  <p data-lake-id="u600db89b" id="u600db89b"><span data-lake-id="u060b3f0b" id="u060b3f0b">RocketMQ的消息堆积，一般都是因为客户端本地消费过程中，由于消费耗时过长或消费并发度较小等原因，导致客户端消费能力不足，出现消息堆积的问题。</span></p>
  <p data-lake-id="u0ea0fbb8" id="u0ea0fbb8"><span data-lake-id="u094ffb58" id="u094ffb58"><br></span><span data-lake-id="u18300e54" id="u18300e54">当线上出现消息堆积的问题时，一般有以下几种方式来解决：</span></p>
  <p data-lake-id="u09f3fed2" id="u09f3fed2"><span data-lake-id="u3c9d43f0" id="u3c9d43f0">​</span><br></p>
  <ol list="uc2f67f6a">
   <li fid="u55af19ca" data-lake-id="u1fdd1103" id="u1fdd1103"><span data-lake-id="u64742036" id="u64742036">增加消费者数量：消息堆积了，消费不过来了，那就把消费者的数量增加一下，让更多人的实例来消费这些消息。</span></li>
   <li fid="u55af19ca" data-lake-id="ud4a42a5a" id="ud4a42a5a"><span data-lake-id="uaf1c4a5b" id="uaf1c4a5b">提升消费者消费速度：消费者消费的慢可能是消息堆积的主要原因，想办法提升消费速度，比如引入线程池、本地消息存储后即返回成功后续再慢慢消费等。</span></li>
   <li fid="u55af19ca" data-lake-id="u8dd05f95" id="u8dd05f95"><span data-lake-id="uda0d26c8" id="uda0d26c8">降低生产者的生产速度：如果生产者可控的话，可以让生产者生成消息的速度慢一点。</span></li>
   <li fid="u55af19ca" data-lake-id="u84174643" id="u84174643"><span data-lake-id="u476463a3" id="u476463a3">清理过期消息：有一些过期消息、或者一直无法成功的消息，在业务做评估之后，如果无影响或者影响不大，其实是可以清理的。</span></li>
   <li fid="u55af19ca" data-lake-id="u3da775ef" id="u3da775ef"><span data-lake-id="ub0ae4837" id="ub0ae4837">调整 RocketMQ 的配置参数：RocketMQ 提供了很多可配置的参数，例如消息消费模式、消息拉取间隔时间等，可以根据实际情况来调整这些参数，从而优化消息消费的效率。</span></li>
   <li fid="u55af19ca" data-lake-id="u002c798a" id="u002c798a"><span data-lake-id="uc8033490" id="uc8033490">增加 Topic 队列数：如果一个 Topic 的队列数比较少，那么就容易出现消息堆积的情况。可以通过增加队列数来提高消息的处理并发度，从而减少消息堆积。</span></li>
  </ol>
  <p data-lake-id="ud3ac640f" id="ud3ac640f"><span data-lake-id="u16d9fd98" id="u16d9fd98">​</span><br></p>
 </body>
</html>